package com.hd.assistant.biz.service.query;

import java.util.HashMap;
import java.util.Map;

public class PaipaiItemSearchQuery {
	private Integer pageIndex;
	private Integer pageSize = 10;
	private Long sellerUin;
	private String itemName;
	private String itemTags;
	private Long categoryId;
	/**
	 * 	目标商品的状态值， 不传值则是获得所有的商品
		1.出售中， 
		2.仓库中，组合状态包括：我下架的+定期下架的+定时上架+从未上架的 
		3.我下架的 
		4.定期下架的 
		5.等待上架 
		6.定时上架 
		7.从未上架 
		8.售完的 
		9.等待处理 
		10.删除的商品
	 */
	private Integer itemState;
	/**
	 * 目标商品的第一次发布时间条件区间里的左边界值
	 */
	private String createTimeBegin;
	private String createTimeEnd;
	private String modifyTimeBegin;
	private String modifyTimeEnd;
	private String toSaleTimeBegin;
	private String toSaleTimeEnd;
	//目标商品价格大于等于 单位：分
	private Integer priceMorethan;
	private Integer priceLessthan;
	/**
	 * 	是否需要返回商品的附属信息，0为不需要，1为需要。 强烈建议该字段不要时设置为0，
		因为这样能大大加快调用的返回速度。 
		备注：
		1.女装商品的下载的时候需要用这个,5张图片必须设置这个为1才能下载到其他4张图片
		2.需要返回尺码表sizeTable时，也必须出现该字段
		3.需要返回会员vip折扣价或是否会员vip商品时，也必须出现该字段
	 */
	private Integer extendInfo;
	/**
	 * 	目标商品列表的排序方式：
		0, 商品ID升序排列 
		1, 商品ID降序排列 
		2, 发布时间升序排列 
		3, 发布时间降序排列 
		4, 下架时间升序排列 
		5, 下架时间降序排列 
		6, 上架时间升序排列 
		7, 上架时间降序排列 
		8, 价格升序排列 
		9, 价格降序排列 
		10, 商品出价次数升序排列 
		11, 商品出价次数降序排列 
		12, 商品剩余时间升序排列 
		13, 商品剩余时间降序排列 
		14, 商品定时上架时间升序排列 
		15, 商品定时上架时间降序排列 
		16, 商品剩余件数升序排列 
		17, 商品剩余件数降序排列
	 */
	private Integer orderType;
	
	/**
	 * 只适应单个商品查询
	 */
	private String itemCode;
	
	/**
	 * 是否需要解析商品属性
		0为不需要（默认）
		1为需要
		只适应单个商品查询
	 */
	private String needParseAttr;
	/**
	 * 是否需要返回商品详情
		0为不需要（默认）
		1为需要。
		只适应单个商品查询
	 */
	private String needDetailInfo;
	/**
	 * 是否需要返回附加信息
		0为不需要（默认）
		1为需要 
		强烈建议该字段在不需要时设置为0，因为这样能大大加快调用的返回速度。
		备注:女装商品的下载的时候需要用这个。5张图片必须设置这个为1才能下载到其他4张图片
		只适应单个商品查询
	 */
	private String needExtendInfo;
	
	
	public String getNeedParseAttr() {
		return needParseAttr;
	}


	public void setNeedParseAttr(String needParseAttr) {
		this.needParseAttr = needParseAttr;
	}


	public String getNeedDetailInfo() {
		return needDetailInfo;
	}


	public void setNeedDetailInfo(String needDetailInfo) {
		this.needDetailInfo = needDetailInfo;
	}


	public String getNeedExtendInfo() {
		return needExtendInfo;
	}


	public void setNeedExtendInfo(String needExtendInfo) {
		this.needExtendInfo = needExtendInfo;
	}


	public String getItemCode() {
		return itemCode;
	}


	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}


	public Integer getPageIndex() {
		return pageIndex;
	}


	public void setPageIndex(Integer pageIndex) {
		this.pageIndex = pageIndex;
	}


	public Integer getPageSize() {
		return pageSize;
	}


	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}


	public Long getSellerUin() {
		return sellerUin;
	}


	public void setSellerUin(Long sellerUin) {
		this.sellerUin = sellerUin;
	}


	public String getItemName() {
		return itemName;
	}


	public void setItemName(String itemName) {
		this.itemName = itemName;
	}


	public String getItemTags() {
		return itemTags;
	}


	public void setItemTags(String itemTags) {
		this.itemTags = itemTags;
	}


	public Long getCategoryId() {
		return categoryId;
	}


	public void setCategoryId(Long categoryId) {
		this.categoryId = categoryId;
	}


	public Integer getItemState() {
		return itemState;
	}


	public void setItemState(Integer itemState) {
		this.itemState = itemState;
	}


	public String getCreateTimeBegin() {
		return createTimeBegin;
	}


	public void setCreateTimeBegin(String createTimeBegin) {
		this.createTimeBegin = createTimeBegin;
	}


	public String getCreateTimeEnd() {
		return createTimeEnd;
	}


	public void setCreateTimeEnd(String createTimeEnd) {
		this.createTimeEnd = createTimeEnd;
	}


	public String getModifyTimeBegin() {
		return modifyTimeBegin;
	}


	public void setModifyTimeBegin(String modifyTimeBegin) {
		this.modifyTimeBegin = modifyTimeBegin;
	}


	public String getModifyTimeEnd() {
		return modifyTimeEnd;
	}


	public void setModifyTimeEnd(String modifyTimeEnd) {
		this.modifyTimeEnd = modifyTimeEnd;
	}


	public String getToSaleTimeBegin() {
		return toSaleTimeBegin;
	}


	public void setToSaleTimeBegin(String toSaleTimeBegin) {
		this.toSaleTimeBegin = toSaleTimeBegin;
	}


	public String getToSaleTimeEnd() {
		return toSaleTimeEnd;
	}


	public void setToSaleTimeEnd(String toSaleTimeEnd) {
		this.toSaleTimeEnd = toSaleTimeEnd;
	}


	public Integer getPriceMorethan() {
		return priceMorethan;
	}


	public void setPriceMorethan(Integer priceMorethan) {
		this.priceMorethan = priceMorethan;
	}


	public Integer getPriceLessthan() {
		return priceLessthan;
	}


	public void setPriceLessthan(Integer priceLessthan) {
		this.priceLessthan = priceLessthan;
	}


	public Integer getExtendInfo() {
		return extendInfo;
	}


	public void setExtendInfo(Integer extendInfo) {
		this.extendInfo = extendInfo;
	}


	public Integer getOrderType() {
		return orderType;
	}


	public void setOrderType(Integer orderType) {
		this.orderType = orderType;
	}


	public Map<String, String> generateParams(){
		Map<String, String> params = new HashMap<String, String>();
		if(this.categoryId != null){
			params.put("categoryId", String.valueOf(categoryId));
		}
		if(this.createTimeBegin != null){
			params.put("createTimeBegin", String.valueOf(createTimeBegin));
		}
		if(this.createTimeEnd != null){
			params.put("createTimeEnd", String.valueOf(createTimeEnd));
		}
		if(this.extendInfo != null){
			params.put("extendInfo", String.valueOf(extendInfo));
		}
		if(this.itemName != null){
			params.put("itemName", String.valueOf(itemName));
		}
		if(this.itemState != null){
			params.put("itemState", String.valueOf(itemState));
		}
		if(this.itemTags != null){
			params.put("itemTags", String.valueOf(itemTags));
		}
		if(this.modifyTimeBegin != null){
			params.put("modifyTimeBegin", String.valueOf(modifyTimeBegin));
		}
		if(this.modifyTimeEnd != null){
			params.put("modifyTimeEnd", String.valueOf(modifyTimeEnd));
		}
		if(this.orderType != null){
			params.put("orderType", String.valueOf(orderType));
		}
		if(this.pageIndex != null){
			params.put("pageIndex", String.valueOf(pageIndex));
		}
		if(this.pageSize != null){
			params.put("pageSize", String.valueOf(pageSize));
		}
		if(this.priceLessthan != null){
			params.put("priceLessthan", String.valueOf(priceLessthan));
		}
		if(this.priceMorethan != null){
			params.put("priceMorethan", String.valueOf(priceMorethan));
		}
		if(this.sellerUin != null){
			params.put("sellerUin", String.valueOf(sellerUin));
		}
		if(this.toSaleTimeBegin != null){
			params.put("toSaleTimeBegin", String.valueOf(toSaleTimeBegin));
		}
		if(this.toSaleTimeEnd != null){
			params.put("toSaleTimeEnd", String.valueOf(toSaleTimeEnd));
		}
		
		if(this.itemCode != null){
			params.put("itemCode", String.valueOf(itemCode));
		}

		if(this.needDetailInfo != null){
			params.put("needDetailInfo", String.valueOf(needDetailInfo));
		}

		if(this.needExtendInfo != null){
			params.put("needExtendInfo", String.valueOf(needExtendInfo));
		}

		if(this.needParseAttr != null){
			params.put("needParseAttr", String.valueOf(needParseAttr));
		}
		return params;
	}

}
